package com.hzz.dto.examine;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("目标考核-考核指标 DTO")
public class ExamineTargetDto extends BaseDto {
	/** id */
	Long id;
	/** 考核指标名称 */
	@NotNull(message = "name不能为空")
	@Size(max = 55, message = "name最大55字符")
	String name;
	/** 考核范围(1当前行政区划；2指定河道） */
	@NotNull(message = "scope不能为空")
	Integer scope;
	/** 考核河道ID */
	Long riverId;
	/** 考核河道名称 */
	String riverName;
	/** 考核周期(按年份；按季度；按月份） */
	@NotNull(message = "period不能为空")
	@Size(max = 32, message = "period最大32字符")
	String period;
	/** 指标有效起始时间 */
	@JSONField(format = "yyyy-MM-dd")
	Date startDate;
	/** 指标有效结束时间 */
	@JSONField(format = "yyyy-MM-dd")
	Date endDate;
	/** 指标考核类型(河长考核；政绩考核；巡查考核；履职考核) */
	@NotNull(message = "examineType不能为空")
	@Size(max = 32, message = "examineType最大32字符")
	String examineType;
	/** 指标集类型(年度考核；季度考核；月度考核；系统自动考核) */
	@NotNull(message = "collectType不能为空")
	@Size(max = 32, message = "collectType最大32字符")
	String collectType;
	/** 系统自动考核占比 */
	@NotNull(message = "autoScale不能为空")
	BigDecimal autoScale;
	/** 人工考核占比 */
	@NotNull(message = "factitiousScale不能为空")
	BigDecimal factitiousScale;
	/** 达标分 */
	// @NotNull(message="passScore不能为空")
	BigDecimal passScore;
	/** 考核总分 */
	@NotNull(message = "totalScore不能为空")
	BigDecimal totalScore;
	/** 行政区域ID,多个之间用逗号分隔 */
	@ApiModelProperty("行政区域ID,多个之间用逗号分隔")
	@Size(max = 128, message = "areaIds最大128字符")
	String areaIds;
	/** 行政区域名称，多个之间用逗号分隔 */
	@ApiModelProperty("行政区域名称，多个之间用逗号分隔")
	@Size(max = 128, message = "areaNames最大128字符")
	String areaNames;
	/** 备注 */
	@Size(max = 255, message = "memo最大255字符")
	String memo;
	/** 删除标记 */
	Integer delFlag;
	/** 建立者id */
	Long createId;
	/** 更新时间 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	Date dateUpdated;
	/** 创建时间 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	Date dateCreated;
	/**
	 * 当前指标ID，用于导入已有指标数据时查询排除条件
	 */
	Long currTargetId;

	/**
	 * 当前行政区划ID
	 */
	Long currAreaId;
}
